#include"../stream/inputbufferstream.h"
#include"../stream/outputbufferstream.h"
#include<iostream>
#include<sstream>

using namespace std;

void usage()
{
	cout <<"Usage -- ./testElementStream <num of streams> <stream size>"<< endl;
}

int main(int argc, char** argv)
{ 
	if(argc!=3)
	{
		usage();
		exit(0);
	}

	int num = atoi(argv[1]);
	int size = atoi(argv[2]);
	outputbufferstream os[num];
	for(int i = 0;i<num;i++)
	{
		stringstream ss;
		ss << i;
		os[i].create(ss.str().c_str());
	}
	for(int i=0;i<num;i++)
	{
		for(int j=0;j<size;j++)
			os[i].write_s(j);
	}

	for(int i = 0;i<num;i++)
	{
		os[i].close_s();
	}

	inputbufferstream is[num];

	for(int i=0;i<num;i++)
	{
		stringstream ss;
		ss << i;
		is[i].open_s(ss.str().c_str());
	}

	for(int i=0;i<num;i++)
	{
		for(int j=0;j<size;j++)
		{
			int a = is[i].read_next();
			if(a==EOF)
				break;
		}
	}
	return 0;
}
